using JetBrains.Annotations;

namespace System
{
  /// <summary>
  /// Observable pattern
  /// </summary>
  /// <remarks>From FW 4.0</remarks>
  public interface IObservable<T>
  {
    /// <summary>
    /// Subscribe observer.
    /// </summary>
    [NotNull]
    IDisposable Subscribe([NotNull] IObserver<T> observer);
  }
}